package com.uzai.console.service.takebal;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.takebal.usertakebal.*;
import com.uzai.console.vo.alipaymchbatch.AlipayMchBatchTransVo;
import com.uzai.console.vo.takebal.usertakebal.UserTakeBalPageVo;
import com.uzai.console.vo.takebal.usertakebal.UserTakeBalReportVo;
import com.uzai.console.vo.takebal.usertakebal.UserTakeBatchAlipayVo;

/***
 * @author liuqi
 * @date 2021年08月25日 20:17
 */
public interface UserTakeBalService {
    /**
     * 分页查询用户提现列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTakeBalQuery
     * @return null
     */
    Page<UserTakeBalPageVo> findUserTakeBalList(UserTakeBalQuery userTakeBalQuery);

    /**
     * 查询用户提现详情
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTakeBalIdDto
     * @return null
     */
    UserTakeBalPageVo findUserTakeBalInfo(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 设置自动查询下一条开关
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTakeBalNexSetDto
     * @return null
     */
    void setNextFlag(UserTakeBalNexSetDto userTakeBalNexSetDto);

    /**
     * 查询下一条用户提现详情
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTakeBalQuery
     * @return null
     */
    UserTakeBalPageVo findNextUserTakeBalInfo(UserTakeBalQuery userTakeBalQuery);

    /**
     * 提现审核
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void checkUserTakeBal(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 拒绝并返还
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void refuseAndReturnUserTakeBal(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 拒绝并扣除
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void refuseAndDecUserTakeBal(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 发送提现卡片
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void sendcard(UserTakeBalSendCardDto userTakeBalSendCardDto);

    /**
     * 提现微信转账
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void wxpay(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 提现微信红包(仅手机版支持)
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void wxRedpacket(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 提现支付宝转账(账房)
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void alipay(UserTakeBalIdDto userTakeBalIdDto);

    /**
     * 提现支付宝转账(个人)
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    AlipayMchBatchTransVo alipayMch(UserTakeBalAlipayMchDto userTakeBalAlipayMchDto);


    /**
     * 批量支付宝转账(个人)
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param userTakeBalAlipayMchBatchDto
     * @return null
     */
    AlipayMchBatchTransVo batchAlipayMch(UserTakeBalAlipayMchBatchDto userTakeBalAlipayMchBatchDto);

    /**
     * 查询支付结果
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    Boolean queryResult(UserTakeBalIdDto userTakeBalIdDto);


    /**
     * 查询待处理总金额
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param userTakeBalQuery
     * @return null
     */
    UserTakeBalReportVo findUserTakeBalReport(UserTakeBalQuery userTakeBalQuery);

    /**
     * 修改提现备注
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void updateRemark(UserTakeBalUpdateRemarkDto userTakeBalUpdateRemarkDto);

    /**
     * 提现个人支付宝转账成功之后，修改提现明细信息
     * @author liuqi
     * @date 2021/8/25 11:38
     * @return null
     */
    void updateAlipayMct(Long id, Integer status, Long merId);

}
